package pl.matt.dao;

import java.util.Collection;

import pl.matt.model.AbstractEntity;

/**
 * 
 * podstawowe operacje CRUD
 * 
 * @author mateusz
 *
 * @param <T>
 */
public interface AbstractEntityDao<T extends AbstractEntity> {

	void create(T object);
	void create(Collection<T> collection);
	
	Collection<T> readAll();
	T read(Long id);
	
	void update(T object);
	void update(Collection<T> collection);
	
	void createOrUpdate(T object);
	void createOrUpdate(Collection<T> collection);
	
	void delete(T object);
}
